package com.sk.rpcAssistNetty.dataManager;


import com.sk.rpcAssistNetty.domain.ProvideInfoValue;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;

import java.util.List;

/**
 * description：provide端数据管理器
 *
 * @author 孙文斌
 * @Date: 2021/2/5 16:28
 */
public interface ConsumerDataManager {

    /**
     * 添加本地缓存providerInfo
     *
     * @param config
     */
    void addServerInfo(ProvideInfoValue config);

    /**
     * 删除本地缓存providerInfo
     *
     * @param config
     */
    void delServerInfo(ProvideInfoValue config);

    /**
     * 更新本地缓存providerInfo
     *
     * @param config
     */
    void updateServerInfo(ProvideInfoValue config);

    /**
     * 查询本地缓存providerInfo
     *
     * @param config
     */
    ProvideInfoValue findServerInfo(ProvideInfoValue config);

    /**
     * 同步本地缓存，供zk缓存监听模式
     *
     * @param childDataList
     */
    void synData(List<ChildData> childDataList, PathChildrenCacheEvent event);

}
